package com.common;

import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;

import javax.swing.JPanel;

// 游戏区域
@SuppressWarnings("serial")
public class GameBoard extends JPanel {
    private final Image mBitmap;    // 后台缓冲位图

    /**
     * 构造方法。 
     * @param parent    父窗口
     * @param x, y      左上角坐标
     * @param width     宽度
     * @param height    高度
     */
    public GameBoard(Container parent, int x, int y, int width, int height) {
        mBitmap = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        super.setLayout(null);
        super.setBounds(x, y, width, height);
        parent.add(this);
    }

    /**
     * 获取绘图者。
     * @return 绘图者
     */
    public Graphics getDrawer() {
        return mBitmap.getGraphics();
    }

    /**
     * 重绘事件的响应方法。
     * @param drawer    绘图者
     */
    @Override
    public void paintComponent(Graphics drawer) {
        drawer.drawImage(mBitmap, 0, 0, super.getWidth(), super.getHeight(), null);
    }
}
